// utils/request.js
import axios from 'axios-miniprogram';

// 创建axios实例
const request = axios.create({
    baseURL: 'http://localhost:48898/admin-api',
    // api的base_url
    timeout: 600000, // 请求超时时间
});


const getAccessToken = () => {
    return uni.getStorageSync({
        key: 'accessToken',
        success: function (res) {
            console.log(res.data)
            return res.data
        },
        fail: function (err) {
            uni.showToast({
                title: '登录已过期，请登录',
                icon: 'none',
                duration: 2000
            })
            uni.reLaunch({
                url: '/pages/login/login'
            })
            return err
        }
    })
}

// 请求拦截器
request.interceptors.request.use(

    //每次发起请求都要loading效果

    //请求完成时关闭loading
    config => {
        uni.showLoading(
            {
                title: '加载中...',
                mask: true
            }
        )
        // 在这里可以添加一些请求之前的处理，例如设置token
        if (!config.url.includes('/login')){
            console.log('请求头添加token')
            config.headers['Authorization'] = 'Bearer ' + uni.getStorageSync('accessToken')
        }
        // config.headers['Authorization'] = 'Bearer 641ebd9a382341bf89605441dae1a1cc'
        config.headers['tenant-id'] = 1;
        // config.headers.tenantId = 1;
        console.log("config",config)

        return config;
    },
    error => {
        // 处理请求错误
        console.log(error); // 用于调试
        Promise.reject(error);
        uni.hideLoading()

    }
);

// 响应拦截器
request.interceptors.response.use(
    response => {
        uni.hideLoading()

        // 任何HTTP状态码为2xx的响应数据都会触发此函数
        console.log(response)
        if (response.data.code === 401){
            uni.showToast({
                title: '登录已过期，请重新登录',
                icon: 'none',
                duration: 2000
            })
            uni.reLaunch({
                url: '/pages/login/login'
            })
        }
        return response;
    },
    error => {
        // 任何超出2xx的HTTP状态码都会触发此函数
        // 处理响应错误
        console.log('err' + error); // 用于调试
        //

        return Promise.reject(error);
    }
);

export default request;